/* 头文件 */
// #include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>

/* 参数传递 */
static int number;
static char *name;
static int para[8];
static char str1[10];

static int n_para;

module_param(number,int, S_IRUGO);
module_param(name, charp, S_IRUGO);
module_param_array(para,int, &n_para, S_IRUGO);
module_param_string(str, str1, sizeof(str1), S_IRUGO);

/* 模块导出 */

/* 函数 */

static int __init paramter_init(void)
{
    static int i;
    printk(KERN_EMERG "%d\n", number);
    printk(KERN_EMERG "%s\n", name);
    for ( i = 0; i < n_para; i++)
    {
        /* code */
        printk(KERN_EMERG "para[%d]:%d\n", i, para[i]);
    }

    printk(KERN_EMERG "%s\n", str1);
    

    return 0;
}

static void __exit paramter_exit(void)
{

    printk(KERN_EMERG "prameter_exit\n");
}


/* 加载模块 */
module_init(paramter_init);
/* 卸载模块 */
module_exit(paramter_exit);
/* 许可证书 */
MODULE_LICENSE("GPL v2");
/* 作者信息 */
MODULE_AUTHOR("jianghe");

